#ifndef LOGFILEHANDLER_H
#define LOGFILEHANDLER_H

#include <QObject>
#include <QDateTime>

class LogFileHandler : public QObject {
    Q_OBJECT

public:
    /**
     * @brief 构造函数，初始化最后清理时间
     * @param parent 父对象指针
     */
    explicit LogFileHandler(QObject *parent = nullptr);

    /**
     * @brief 写入日志内容到文件，并触发定期清理
     * @param logContent 需要写入的日志文本内容
     */
    void writeLog(const QString& logContent);

    /**
     * @brief 设置日志文件存储目录
     * @param dir 目标目录路径（绝对路径）
     */
    void setLogDir(const QString& dir);

signals:
    /**
     * @brief 日志清理完成时触发的信号
     */
    void logCleaned();

private:
    /**
     * @brief 清理超过保留期限的日志文件
     * @param daysToKeep 需要保留的最近天数（默认7天）
     */
    void cleanExpiredLogs(int daysToKeep = 7);

    QString m_logDir;       ///< 日志文件存储目录（以m_开头的成员变量）
    QDateTime m_lastCleanTime; ///< 上次执行清理操作的时间戳
};

#endif // LOGFILEHANDLER_H